Skip to content

VMM: AVIC work-in-progress - #811

Closed
Teknomancer wants to merge 12 commits into
VirtualBox:mainfrom
Teknomancer:vmm-apic
Closed

Teknomancer wants to merge 12 commits into
VirtualBox:mainfrom
Teknomancer:vmm-apic

Conversation

@Teknomancer

Copy link
Copy Markdown
Contributor

VMM AMD AVIC work. Currently SMP Ubuntu 26.04 boots fine with up to 4 VCPUs. There's still work to be done but this is a good point to commit upstream.

Fixed a typo (% vs &) in hmR0SvmExitAvicNoAccel.
Ubuntu 26 VM single-VCPU now boots fully without manually triggering an
interrupt, like for example pressing a key.
… interrupt from the APIC when AMD AVIC is enabled.

This fixes the SMP issue while booting Ubuntu 26 VMs with AVIC.
@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Aug 10, 2026
This is for the upcoming fix in the SVM AVIC incomplete IPI #VMEXIT handler.
Tested this change booting Ubuntu 10.04-3 amd64 live CD to ensure it doesn't cause a regression there.
…similar to invalid interrupt

type and only kick VCPUs if the failure reason is 'target not running', fail other cases.
…ite and pfnSetEoiFast for the NEM Windows and Linux x86 backends.
klaus-vb pushed a commit that referenced this pull request Aug 19, 2026
…h-808

Includes commits:
    * VMM: SVM AVIC work-in-progress, continuing work done by Alexander Eichner on the SVM AVIC implementation.
    * VMM/target-x86: SVM AVIC, include the PDMHasApic check in fUseAvic. Logging nits.
    * VMM: SVM AVIC work-in-progress. Ubuntu 26 live-CD now boots with single VCPU using the AVIC.
    * VMM/target-x86: Fix APIC interrupt delivery when SVM AVIC is used. Fixed a typo (% vs &) in hmR0SvmExitAvicNoAccel. Ubuntu 26 VM
                      single-VCPU now boots fully without manually triggering an interrupt, like for example pressing a key.
    * VMM/target-x86: Fix incorrect force-flag clearing when retreiving the interrupt from the APIC when AMD AVIC is enabled. This fixes
                      the SMP issue while booting Ubuntu 26 VMs with AVIC.
    * VMM/HM: Don't yet enable AVIC by default, needs more testing.
    * VMM/APIC: Fix error handling when an illegal vector is sent via an IPI. This is for the upcoming fix in the SVM AVIC incomplete
                IPI #VMEXIT handler. Tested this change booting Ubuntu 10.04-3 amd64 live CD to ensure it doesn't cause a regression there
    * VMM/APIC: Comment typo.
    * VMM/HM: SVM AVIC: Incomplete IPI #VMEXIT nits. Handle invalid target similar to invalid interrupt type and only kick VCPUs if the
              failure reason is 'target not running', fail other cases.
    * VMM/target-x86: Added missing stub functions for pfnUpdateApicAfterWrite and pfnSetEoiFast for the NEM Windows and Linux x86 backends.
    * VMM/target-x86: APIC: Removed temporary additional debug logging that wasn't meant to be committed.

github-merge-author: Teknomancer <v.ramshankar@gmail.com>



svn:sync-xref-src-repo-rev: r174915
klaus-vb pushed a commit that referenced this pull request Aug 19, 2026
klaus-vb pushed a commit that referenced this pull request Aug 19, 2026
klaus-vb pushed a commit that referenced this pull request Aug 19, 2026
klaus-vb pushed a commit that referenced this pull request Aug 19, 2026
@AlexanderEichner

Copy link
Copy Markdown
Contributor

Merged the pull request, thanks!

klaus-vb pushed a commit that referenced this pull request Aug 19, 2026
klaus-vb pushed a commit that referenced this pull request Aug 19, 2026
tvataire pushed a commit to tvataire/virtualbox that referenced this pull request Aug 20, 2026
 github:VirtualBoxgh-808

Includes commits:
    * VMM: SVM AVIC work-in-progress, continuing work done by Alexander Eichner on the SVM AVIC implementation.
    * VMM/target-x86: SVM AVIC, include the PDMHasApic check in fUseAvic. Logging nits.
    * VMM: SVM AVIC work-in-progress. Ubuntu 26 live-CD now boots with single VCPU using the AVIC.
    * VMM/target-x86: Fix APIC interrupt delivery when SVM AVIC is used. Fixed a typo (% vs &) in hmR0SvmExitAvicNoAccel. Ubuntu 26 VM
                      single-VCPU now boots fully without manually triggering an interrupt, like for example pressing a key.
    * VMM/target-x86: Fix incorrect force-flag clearing when retreiving the interrupt from the APIC when AMD AVIC is enabled. This fixes
                      the SMP issue while booting Ubuntu 26 VMs with AVIC.
    * VMM/HM: Don't yet enable AVIC by default, needs more testing.
    * VMM/APIC: Fix error handling when an illegal vector is sent via an IPI. This is for the upcoming fix in the SVM AVIC incomplete
                IPI #VMEXIT handler. Tested this change booting Ubuntu 10.04-3 amd64 live CD to ensure it doesn't cause a regression there
    * VMM/APIC: Comment typo.
    * VMM/HM: SVM AVIC: Incomplete IPI #VMEXIT nits. Handle invalid target similar to invalid interrupt type and only kick VCPUs if the
              failure reason is 'target not running', fail other cases.
    * VMM/target-x86: Added missing stub functions for pfnUpdateApicAfterWrite and pfnSetEoiFast for the NEM Windows and Linux x86 backends.
    * VMM/target-x86: APIC: Removed temporary additional debug logging that wasn't meant to be committed.

github-merge-author: Teknomancer <v.ramshankar@gmail.com>



svn:sync-xref-src-repo-rev: r174915
tvataire pushed a commit to tvataire/virtualbox that referenced this pull request Aug 20, 2026
tvataire pushed a commit to tvataire/virtualbox that referenced this pull request Aug 20, 2026
tvataire pushed a commit to tvataire/virtualbox that referenced this pull request Aug 20, 2026
tvataire pushed a commit to tvataire/virtualbox that referenced this pull request Aug 20, 2026
tvataire pushed a commit to tvataire/virtualbox that referenced this pull request Aug 20, 2026
tvataire pushed a commit to tvataire/virtualbox that referenced this pull request Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants